Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kv/concurrency: remove synthetic timestamp handling in lockTableWaiter #117018

Merged

Conversation

nvanbenschoten
Copy link
Member

Informs #101938.

This commit removes the handling of synthetic timestamps from the the lock-table waiter. The lock-table waiter used to handle the synthetic timestamp bit in two ways:

  1. if set, it would propagate it on txn pushes
  2. if set, it would would push txns above the local HLC clock, because observed timestamps from the clock would not be usable to avoid uncertainty with intents written at (or pushed to) synthetic timestamps.

Neither of these behaviors are necessary anymore. We don't need to propagate the flag, because it has been deprecated since v22.2 and is no longer consulted in uncertainty interval checks or by transaction commit-wait. We also don't need to push intents above the local HLC, because observed timestamps can now be used to avoid uncertainty with intents up to the intent's local timestamp, which will be set to the local HLC from before the push (see ClockWhilePending).

Release note: None

@nvanbenschoten nvanbenschoten requested a review from a team as a code owner December 22, 2023 16:14
@cockroach-teamcity
Copy link
Member

This change is Reviewable

Informs cockroachdb#101938.

This commit removes the handling of synthetic timestamps from the the
lock-table waiter. The lock-table waiter used to handle the synthetic
timestamp bit in two ways:
1. if set, it would propagate it on txn pushes
2. if set, it would would push txns above the local HLC clock, because
   observed timestamps from the clock would not be usable to avoid
   uncertainty with intents written at (or pushed to) synthetic timestamps.

Neither of these behaviors are necessary anymore. We don't need to
propagate the flag, because it has been deprecated since v22.2 and is no
longer consulted in uncertainty interval checks or by transaction
commit-wait. We also don't need to push intents above the local HLC,
because observed timestamps can now be used to avoid uncertainty with
intents up to the intent's local timestamp, which will be set to the
local HLC from before the push (see ClockWhilePending).

Release note: None
@nvanbenschoten nvanbenschoten force-pushed the nvanbenschoten/synTimestampTxn branch from 51778dc to 3294adb Compare January 9, 2024 00:06
Copy link
Collaborator

@arulajmani arulajmani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewed 3 of 3 files at r1, all commit messages.
Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @nvanbenschoten)

@nvanbenschoten
Copy link
Member Author

TFTR!

bors r+

@craig
Copy link
Contributor

craig bot commented Jan 9, 2024

Build succeeded:

@craig craig bot merged commit 2c3b07e into cockroachdb:master Jan 9, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants